/*
 * File:    Soap.java
 * Created: 25-Jun-2007
 * Version: $Id$
 *
 * COPYRIGHT (C) 2007, Bitgate Software, LLC.  All Rights Reserved.
 *
 * software@bitgatesoftware.com
 */

package com.bitgate.util.soap;

import java.lang.annotation.*;

/**
 * Provides an annotation called &quot;Soap&quot; which provides a way of describing a class for external SOAP methods.
 * It allows for an entry point (ie. a directory or request inside a virtual server) for accessing the SOAP methods contained
 * within the class, an access class (public or protected) for accessing methods inside a class, and whether or not a session
 * object is required to access the SOAP request.
 * 
 * @author kenji
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface Soap
{
	/**
	 * Indicates whether or not a session is required to access the SOAP methods contained within the class that utilizes
	 * this annotation.
	 * 
	 * @return <code>true</code> if an active session is required, <code>false</code> otherwise.
	 */
	boolean requireSession();
	
	/**
	 * Indicates the entry point in the web server - relative to the virtual server root - from which a SOAP method can be
	 * accessed.
	 * 
	 * @return <code>String</code> containing the entry point.
	 */
	String entryPoint();
	
	/**
	 * This is the documentation for the overall class structure.
	 * 
	 * @return <code>String</code> containing the documentation, &quot;No documentation provided.&quot; is the default.
	 */
	String documentation() default "No documentation provided.";
}